home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / bsf.jar / com / ibm / cs / util / JavaUtils.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-09-24  |  1.9 KB  |  50 lines

  1. package com.ibm.cs.util;
  2.  
  3. import java.io.IOException;
  4. import sun.tools.javac.Main;
  5.  
  6. public class JavaUtils {
  7.    private static boolean debug;
  8.    private static boolean cantLoadCompiler;
  9.  
  10.    public static boolean JDKcompile(String var0, String var1) {
  11.       if (debug) {
  12.          System.err.println("JavaEngine: Compiling " + var0);
  13.          System.err.println("JavaEngine: Classpath is " + var1);
  14.       }
  15.  
  16.       String var2 = debug ? "-g" : "-O";
  17.       if (!cantLoadCompiler) {
  18.          String[] var3 = new String[]{var2, "-classpath", var1, var0};
  19.  
  20.          try {
  21.             return (new Main(System.err, "javac")).compile(var3);
  22.          } catch (Throwable var8) {
  23.             System.err.println("WARNING: Unable to load Java 1.1 compiler.");
  24.             System.err.println("\tSwitching to command-line invocation.");
  25.             cantLoadCompiler = true;
  26.          }
  27.       }
  28.  
  29.       String[] var9 = new String[]{"javac", var2, "-classpath", var1, var0};
  30.  
  31.       try {
  32.          Process var4 = Runtime.getRuntime().exec(var9);
  33.          var4.waitFor();
  34.          if (var4.exitValue() == 0) {
  35.             return false;
  36.          }
  37.  
  38.          return true;
  39.       } catch (IOException var5) {
  40.          System.err.println("ERROR: IO exception during exec(javac).");
  41.       } catch (SecurityException var6) {
  42.          System.err.println("ERROR: Unable to create subprocess to exec(javac).");
  43.       } catch (InterruptedException var7) {
  44.          System.err.println("ERROR: Wait for exec(javac) was interrupted.");
  45.       }
  46.  
  47.       return false;
  48.    }
  49. }
  50.